﻿select * from AccountInfo
select * from BankCard
select * from CardExchange
select * from CardTransfer

1. 为赵云此人进行开户开卡操作，赵云身份证：420107199904054233

insert into AccountInfo values('420107199904054233','13454788478','赵云',GETDATE());


2. 需要求出张飞的银行卡卡号和余额，张飞身份证：420107199602034138  （1.使用连接查询，2.使用变量）

#### 逻辑控制

##### 条件分支if-else


declare @cd varchar(50)
		select @cd=AccountCode from AccountInfo where RealName='张飞'
		print @cd
		select b.CardNo,b.CardMoney from AccountInfo a
		inner join BankCard b on a.AccountId=b.AccountId
		where AccountCode=@cd
		;
		declare @cd1 varchar(50),@ye decimal(13,2)
		select @cd1=cardno,@ye=CardMoney from AccountInfo a
		inner join BankCard b on a.AccountId=b.AccountId
		where a.AccountCode='420107199602034138'
		print concat('卡号',@cd1,'  ','余额',@ye)


​	3.某用户银行卡号为“6225547854125656”，该用户执行取钱操作，取钱5000元，余额充足则进行取钱操作，并提示"取钱成功"，否则提示“余额不足”。

##### 条件分支:case-when
declare @money decimal(13,2)
		select @money=CardMoney from BankCard where CardNo='6225547854125656'
		if(@money>5000)
		begin
			update BankCard set CardMoney=@money-5000 where CardNo='6225547854125656'
			set @money-=5000
			print '取钱成功'
		end
		else 
		begin
			print '余额不足'
		end
		print concat('余额:',@money)

		
​	4.查询银行卡信息，将银行卡状态1,2,3,4分别转换为汉字“正常,挂失,冻结,注销”，并且根据银行卡余额显示银行卡等级 30万以下为“普通用户”,30万及以上为"VIP用户"，  

--显示列分别为卡号，身份证，姓名，余额，用户等级，银行卡状态。

##### **while**

select CardNo 卡号,AccountCode 身份证,RealName 姓名, CardMoney 余额, 
case
	when CardMoney>300000 then 'VIP客户'
	else '普通用户'
end 用户等级,

case
	when CardState=1 then '正常'
	when CardState=2 then '挂失'
	when CardState=3 then '冻结'
	else '注销'
end 银行卡状态状态


from BankCard
inner join AccountInfo on AccountInfo.AccountId = BankCard.AccountId


​	5.循环打印1-10。
declare @a int = 1
while @a < 10
	begin
		print @a
		set @a = @a + 1
	end
print @a

​	6.打印99乘法表
declare @i int = 1
while @i <= 9
	begin
		declare @j int = 1
		declare @result varchar(200) = ''
		while  @j <= @i
			
			begin
				set @result = @result + cast(@i as varchar(1))+ ' * ' + cast(@j as varchar(1)) + ' = '+ cast(@i*@j as varchar(2)) + char(9)
				set @j = @j + 1
			end
		print @result
		set @i = @i + 1
	end
